var url,fpath,fsize,cycle,files;


$('document').ready(function(){

	// 获取服务器信息
	config();

	// 加载根目录列表
	change_dir('/');

	// 加载时钟
	changeClock();
	window.setInterval(changeClock, 1000);


/************  事件  *************/


	// 显示首页
	$('.goroot').click(function(){
		change_dir('/');
	});

	// 返回
	$('#back').click(function(){
		var path = '';
		var back = $('#path').text().split('/');
		back.pop();
		back.pop();
		$.each(back,function(v, f){
			path = path + f + '/';
		});
		if($('#path').text() != '/'){
			change_dir(path);
		}

	});

	// 退出
	$('#exit').click(function(){
		if(confirm("确定要退出？")){
			$.post('index.php','exit=true',function(data){
				if(data == 1){
					location.reload();
				}else{
					error('退出失败！');
				}
			});
		}
	});

	// 离线下载
	$('.curl').click(function(){
		var url = $('.url').val();
		if(url == ''){

		}else{
			var path = $('#path').text();
			$('.pgbar').css('width','0%');
			// 下载文件
			$.post('index.php',{url:url,path:path,curl:1},function(){
				$('.go').fadeOut();
				$('.url').val('');
				window.clearInterval(cycle);
				refresh();
			});
			refresh();
			$('.go').fadeIn();
			// 获取远程文件大小
			$.post('index.php',{url:url,path:path,filesize:1},function(data){
				fpath = data.path;
				fsize = data.size;
				cycle = window.setInterval(get_file_size, 1000);
			},'json');

		}
	});

	// 全选
	$('.all').click(function(){
		if($('.all').is(':checked')){
			$('.dirs').attr('checked',true);
			$('.files').attr('checked',true);
		}else{
			$('.dirs').attr('checked',false);
			$('.files').attr('checked',false);
		}
	});

	// 下载
	$('.file_name').live('click',function(){
		var file = $('#path').text() + $(this).text();
		window.open('?file='+file+'&down=1');
	});

	// 新建文件
	$('.newfile').live('click',function(){
		var file = $('#path').text() + $('.new').val();
		if(file == ''){

		}else{
			make(file,'file');
		}
	});

	// 新建目录
	$('.newdir').live('click',function(){
		var file = $('#path').text() + $('.new').val();
		if(file == ''){

		}else{
			make(file,'dir');
		}
	});

	// 复制
	$('.copy').live('click',function(){
		var file = new Array();
		file.push($('#path').text() + $(this).parent().parent().children(':first').text());
		copy(file);
	});

	// 批量复制
	$('.copys').click(function(){
		var files = new Array();
		$(".list").find("input:checked").each(function(){
			files.push($('#path').text() + $(this).next().text());
		});
		copy(files);
	});

	// 移动
	$('.move').live('click',function(){
		var file = new Array();
		file.push($('#path').text() + $(this).parent().parent().children(':first').text());
		move(file);
	});

	// 批量移动
	$('.moves').click(function(){
		var files = new Array();
		$(".list").find("input:checked").each(function(){
			files.push($('#path').text() + $(this).next().text());
		});
		move(files);
	});

	// 压缩
	$('#zip').live('click',function(){
		var parent = $(this).parent();
		var name = parent.parent().children(':first').text();
		var file = $('#path').text() + name;
		var zipname = name + '.zip';
		if(confirm("确定要压缩：" + name + '？')){
			$.post('index.php',{file:file,name:zipname,zip:1},function(data){
				if(data == 1){
					success('文件已压缩！');
					refresh();
				}else{
					error('文件压缩失败。');
				}
			});
		}
	});

	// 解压
	$('.files').live('click',function(){
		var files = new Array();
		var b = 1;
		$(".list").find("input:checked").each(function(){
			var parent = $(this).parent();
			var name = parent.parent().children(':first').text();
			var names = name.split('.');
			var n = names.length - 1;
			if(names[n] == 'zip'){
				files.push($('#path').text() + name);
			}else{
				b = b*0;
			}
		});
		if(files.length > 0){
			$('.unzip').show();
		}else{
			$('.unzip').hide();
		}
	});

	$('.unzip').click(function(){
		unzip(files);
	});

	// 修改权限
	$('.perm').live('click',function(){
		if($(this).children().length > 0){

		}else{
			var perm = $(this).text();
			$(this).html('<input type="text" name="perm" class="change_perm" value="'+perm+'" style="width:30px;" />');
			$('.change_perm').focus();
			$('.change_perm').blur(function(){
				var parent = $(this).parent();
				var change_perm = $(this).val();
				var reg =/^\d{3,4}$/;
				if(perm == change_perm){
					// 属性值未改变
					parent.text(perm);
				}else if(!reg.exec(change_perm)){
					// 属性值不符合要求
					parent.text(perm);
					error('文件失败');
				}else{
					// 修改属性
					var file = $('#path').text()+parent.parent().children(':first').text();
					$.post('index.php',{file:file,perm:change_perm},function(data){
						if(data == 1){
							parent.text(change_perm);
							success('文件属性修改成功！');
						}else{
							error('文件压缩失败。');
						}
					});
				}
			});
		}
	});

	// 重命名
	$('#rename').live('click',function(){
		// 文件名
		var name = $(this).parent().parent().children(':first').text();
		// 文件路径
		var file = $('#path').text()+name;
		// 文件名表单
		var parent = $(this).parent().parent().children(':first');
		parent.children(':last').hide();
		parent.append('<input type="text" name="rename" class="rename" value="'+name+'" style="width:200px;" />');
		$('.rename').focus();
		// 失去焦点
		$('.rename').blur(function(){
			if(name == $('.rename').val()){
				// 文件名未改变
				parent.children(':last').remove();
				parent.children(':last').show();
			}else{
				// 修改文件名
				var rename = $('.rename').val();
				$.post('index.php',{file:file,rename:rename},function(data){
					if(data == 1){
						refresh();
						success('文件重命名成功！');
					}else{
						parent.find('a').text(name);
						error('文件重命名失败。');
					}
				});
			}
		});
	});


	// 删除
	$('.del').live('click',function(){
		var name = $(this).parent().parent().children(':first').text();
		var file = new Array();
		file.push($('#path').text()+name);
		del(file);
	});

	// 批量删除
	$('.dels').click(function(){
		var files = new Array();
		$(".list").find("input:checked").each(function(){
			files.push($('#path').text() + $(this).next().text());
		});
		del(files);
	});

});

/************  函数  *************/

// 获取服务器信息
function config(){
	// 加载头部数据
	$.post('index.php',{config:1},function(data){
		// 主机名
		$('#host').append(data.host);
		// 客户端IP
		$('#ip').append(data.ip);
	},'json');
}

// 新建文件或目录
function make(file,type){
	$.post('index.php',{file:file,make:1,type:type},function(data){
		if(data == 1){
			refresh();
			success('新建文件成功！');
		}else{
			error('新建文件失败');
		}
	});
}

// 删除
function del(files){
	if(confirm("确定要删除此文件？")){
		$.post('index.php',{file:files,del:1},function(data){
			if(data == 1){
				refresh();
				success('文件删除成功！');
			}else{
				error('文件删除失败。');
			}
		});
	}
}

// 移动
function move(files){
	var moveto = prompt("移动到：","");
	if(moveto){
		if(moveto == ''){

		}else{
			$.post('index.php',{file:files,moveto:moveto,move:1},function(data){
				if(data == 1){
					success('文件移动成功！');
					refresh();
				}else{
					error('文件移动失败。');
				}
			});
		}
	}
}

// 复制
function copy(files){
	var copyto = prompt("复制到：","");
	if(copyto){
		if(copyto == ''){

		}else{
			$.post('index.php',{file:files,copyto:copyto,copy:1},function(data){
				if(data == 1){
					success('文件复制成功！');
					refresh();
				}else{
					error('文件复制失败。');
				}
			});
		}
	}
}

// 解压
function unzip(files){
	var unzipto = prompt("解压到：","");
	if(unzipto){
		$.post('index.php',{file:files,unzipto:unzipto,unzip:1},function(data){
			if(data == 1){
				success('文件解压成功！');
				refresh();
			}else{
				error('文件解压失败。');
			}
		});
	}
}

// 改变目录
function change_dir(dir){
	$.post('index.php','dir='+dir,function(data){
		$('.list').empty();
		$.each(data.dir,function(n,v){
			$('.list').append('<tr><td class="left"><input type="checkbox" class="dirs" /><a href="javascript:void(0);" onclick="change_dir(\''+v.path+'/\')">'+v.name+'</a></td><td>'+v.ctime+'</td><td>'+v.mtime+'</td><td>文件夹</td><td class="perm">'+v.perm+'</td><td><a href="javascript:void(0);" class="copy" >复制</a> | <a href="javascript:void(0);" class="move" >移动</a> | <a href="javascript:void(0);" class="del">删除</a> | <a href="javascript:void(0);" id="rename" >重命名</a> | <a href="javascript:void(0);" id="zip" >压缩</a></td></tr>');
		});
		$.each(data.file,function(m,f){
			$('.list').append('<tr><td class="left"><input type="checkbox" class="files" /><a href="javascript:void(0);" class="file_name" >'+f.name+'</a></td><td>'+f.ctime+'</td><td>'+f.mtime+'</td><td>'+f.fsize+'</td><td class="perm">'+f.perm+'</td><td><a href="javascript:void(0);" class="copy" >复制</a> | <a href="javascript:void(0);" class="move" >移动</a> | <a href="javascript:void(0);" class="del">删除</a> | <a href="javascript:void(0);" id="rename" >重命名</a> | <a href="javascript:void(0);" id="zip" >压缩</a></td></tr>');
		});
		var now = '';
		var url = '';
		$.each(data.path,function(p,t){
			if(!p == 0){
				now += '/' + t;
				url += '/<a href="javascript:void(0);" onclick="change_dir(\''+now+'/\')">'+t+'</a>';
			}
		});
		$('#path').html(url);
		$('.up_path').val($('#path').text());
	},'json');
}

// 刷新当前目录
function refresh(){
	var dir = $('#path').text();
	change_dir(dir)
}

// 获取文件大小
function get_file_size(){
	$.post('index.php',{file:fpath,fsize:1},function(data){
		var per = parseInt((data / fsize)*100) + '%';
		$('.pgbar').css('width',per);
	});
}

// 时钟
function changeClock(){
	var d = new Date();
	$("#time").html('时间：'+d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate() + " " + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds());
}

// 操作失败
function error(info){
	$('.result').removeClass('success');
	$('.result').addClass('error');
	$('.result').text(info);
	$('.result').fadeIn();
	setTimeout(function () {
		$('.result').fadeOut();
	}, 2000);
}

// 操作成功
function success(info){
	$('.result').removeClass('error');
	$('.result').addClass('success');
	$('.result').text(info);
	$('.result').fadeIn();
	setTimeout(function () {
		$('.result').fadeOut();
	}, 2000);
}
